Remove route switch (-r) dependency. Fix id output format. Write same id's in route...
authoroliskoli <oliskoli>
Wed, 29 Nov 2006 00:25:27 +0000 (00:25 +0000)
committeroliskoli <oliskoli>
Wed, 29 Nov 2006 00:25:27 +0000 (00:25 +0000)
coastexp.c
reference/coastexp.ref2
reference/coastexp.ref3
reference/coastexp.ref4

index acb70996e231e398536beb3f5250b0ed51c479a3..a99eac16bdd1a32081f916109f355a63f9f0ca24 100755 (executable)
@@ -95,7 +95,9 @@ ce_add_mark_to_route(ce_route *route, ce_mark *mark)
 static void
 ce_free_mark(ce_mark *mark)
 {
-       xfree(mark->id);
+       dequeue(&mark->Q);
+       if (mark->id)
+               xfree(mark->id);
        if (mark->created)
                xfree(mark->created);
        xfree(mark);
@@ -115,6 +117,16 @@ ce_free_route(ce_route *route)
        // Don't free the waypoint since this is done elsewhere
 }
 
+/* Allocate a mark */
+static ce_mark *
+ce_alloc_mark(const waypoint *wpt, const char *id)
+{
+       ce_mark *res = xcalloc(sizeof(ce_mark), 1);
+       res->id = (char *) id;
+       res->wp = (waypoint *) wpt;
+       return res;
+}
+
 #if !HAVE_LIBEXPAT
 void
 ce_rd_init(const char *fname)
@@ -145,18 +157,14 @@ ce_start(void *data, const XML_Char *xml_el, const XML_Char **xml_attr)
                                // Create a CE route object and add it to the list of routes
                                currentRoute = (ce_route *) xcalloc(sizeof (ce_route), 1);
                                currentRoute->id=xstrdup(ap[1]);
-                               if (doing_rtes) 
-                                       currentRoute->r = route_head_alloc();
+                               currentRoute->r = route_head_alloc();
                                QUEUE_INIT(&currentRoute->ce_mark_head);
-                               if (doing_rtes) 
-                                       ce_add_route(currentRoute);
+                               ce_add_route(currentRoute);
                        }
                }
        } else if (0 == strcmp(el, "Mark")) {
                inMark = 1;
-               currentMark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
-               currentMark->wp = NULL;
-               currentMark->used = 0;
+               currentMark = ce_alloc_mark(NULL, NULL);
                ce_add_mark(currentMark);
                for (ap = attr; *ap; ap+=2) {
                        if (0 == strcmp(ap[0], "id")) {
@@ -178,9 +186,7 @@ ce_end(void *data, const XML_Char *xml_el)
 {
        const char *el = xml_convert_to_char_string(xml_el);
        if (0 == strcmp(el, "Route")) {
-               if (!doing_rtes)
-                       ce_free_route(currentRoute);
-               inRoute = 0;
+               inRoute = 0; /* ??? */
        }
        else if (0 == strcmp(el, "Mark"))
                inMark = 0;
@@ -214,10 +220,7 @@ ce_cdata(void *dta, const XML_Char *xml_s, int len)
                        if (inRoute) {
                                // We are processing the marks in a route so create a CE mark object
                                // and add it to the current route
-                               ce_mark *mark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
-                               mark->id = xstrdup(s);
-                               mark->created = NULL;
-                               mark->wp = NULL;
+                               ce_mark *mark = (ce_mark *) ce_alloc_mark(NULL, xstrdup(s));
                                ce_add_mark_to_route(currentRoute, mark);
                        }
                } else if (0 == strcmp(element, "Position")) {
@@ -284,7 +287,6 @@ ce_cdata(void *dta, const XML_Char *xml_s, int len)
                                }
                        }
                        else if (inRoute) {
-                               if (doing_rtes)
                                currentRoute->r->rte_name = xstrdup(s);
                        }
                } else if (0 == strcmp(element, "Description")) {
@@ -397,7 +399,6 @@ ce_remove_used_marks(void)
                ce_mark *mark = (ce_mark *) elem;
                if (mark->used)
                {
-                       dequeue(elem);
                        if (mark->wp)
                                waypt_free(mark->wp);
                        ce_free_mark(mark);
@@ -444,11 +445,9 @@ ce_rd_deinit(void)
        */
        queue *elem, *tmp;
 
-       if (doing_rtes) {
-               ce_fix_route_mark_waypoints();
+       ce_fix_route_mark_waypoints();
        ce_check_route_names();
-               ce_remove_used_marks();
-       }
+       ce_remove_used_marks();
 
        // Log results
        if (global_opts.debug_level > 1)
@@ -457,7 +456,6 @@ ce_rd_deinit(void)
        // Add routes to GPSBabel
        QUEUE_FOR_EACH(&ce_route_head, elem, tmp) {
                ce_route *route = (ce_route *) elem;
-               if (doing_rtes) {
                queue *elem2, *tmp2;
                route_add_head(route->r);
                QUEUE_FOR_EACH(&route->ce_mark_head, elem2, tmp2) {
@@ -467,7 +465,6 @@ ce_rd_deinit(void)
                        else
                                printf("Undefined mark: %s\n", mark->id);
                }
-               }
                ce_free_route(route);
        }
 
@@ -495,6 +492,7 @@ ce_wr_init(const char *fname)
        xml_buffer = xcalloc(MY_XBUF, 1);
 
        ofd = gbfopen(fname, "w", MYNAME);
+       srand(gpsbabel_now);
 }
 
 void
@@ -541,11 +539,9 @@ ce_gen_uuid(void)
 static void
 ce_route_hdr(const route_head *rte)
 {
-       if (doing_rtes) {
-               sprintf(xml_buffer, "{%s}", ce_gen_uuid());
-               write_xml_entity_begin2(ofd, "\t", "Route", "created", ce_gen_current_time(), "id", xml_buffer);
-               write_xml_entity_begin0(ofd, "\t\t", "Marks");
-       }
+       sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+       write_xml_entity_begin2(ofd, "\t", "Route", "created", ce_gen_current_time(), "id", xml_buffer);
+       write_xml_entity_begin0(ofd, "\t\t", "Marks");
 }
 
 /* Generate route body XML */
@@ -554,11 +550,11 @@ ce_route_disp(const waypoint *waypointp)
 {
        char *uuid = ce_gen_uuid();
        char *id = xcalloc(strlen(uuid)+3, 1);
+               
        sprintf(id, "{%s}", uuid);
-       currentMark = (ce_mark *) xcalloc(sizeof (ce_mark), 1);
-       currentMark->id = id;
-       currentMark->wp = (waypoint *) waypointp;
+       currentMark = ce_alloc_mark(waypointp, id);
        ENQUEUE_TAIL(&ce_mark_head, &currentMark->Q);
+
        gbfprintf(ofd, "\t\t\t%s\n", id); // CE's departure from XML standard!
 }
 
@@ -566,11 +562,9 @@ ce_route_disp(const waypoint *waypointp)
 static void
 ce_route_tlr(const route_head *rte)
 {
-       if (doing_rtes) {
-               write_xml_entity_end(ofd, "\t\t", "Marks");
-               write_optional_xml_entity(ofd, "\t\t", "Name", rte->rte_name);
-               write_xml_entity_end(ofd, "\t", "Route");
-       }
+       write_xml_entity_end(ofd, "\t\t", "Marks");
+       write_optional_xml_entity(ofd, "\t\t", "Name", rte->rte_name);
+       write_xml_entity_end(ofd, "\t", "Route");
 }
 
 /* Generate waypoint body XML */
@@ -595,13 +589,59 @@ ce_waypt_pr(const waypoint *wp)
        write_optional_xml_entity(ofd, "\t\t", "Name", wp->shortname);
 }
 
-/* Generate a standalone mark XML */
+static char *
+ce_find_uuid(const waypoint *wpt)
+{
+       queue *elem, *tmp;
+
+       QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+               ce_mark *mark = (ce_mark *) elem;
+               if (mark->wp == wpt) {
+                       return mark->id;
+               }
+       }
+       return NULL;
+}
+
+static waypoint *
+ce_find_wpt(const waypoint *wpt)
+{
+       queue *elem, *tmp;
+
+       QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+               ce_mark *mark = (ce_mark *) elem;
+               if ((mark->wp->shortname == wpt->shortname) &&
+                   (mark->wp->latitude == wpt->latitude) &&
+                   (mark->wp->longitude == wpt->longitude))
+                       return mark->wp;
+       }
+       return NULL;
+}
+
+/* Generate a mark XML; look for created id's */
 static void
 ce_mark_pr(const waypoint *wp)
 {
+       char *id;
+       
+       if (inRoute) {
+               id = ce_find_uuid(wp);
+               if (id == NULL) {
+                       sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+                       id = xml_buffer;
+               }
+       }
+       /* Have we seen and written the (nearly) same waypoint ? */
+       else if (ce_find_wpt(wp) != NULL) return;
+       else {
+               ce_mark *mark = ce_alloc_mark(wp, NULL);
+               ENQUEUE_TAIL(&ce_mark_head, &mark->Q);
+               sprintf(xml_buffer, "{%s}", ce_gen_uuid());
+               id = xml_buffer;
+       }
        write_xml_entity_begin2(ofd, "\t", "Mark",
-                                                       "created", ce_gen_creation_time(wp->creation_time),
-                                                       "id", ce_gen_uuid());
+               "created", ce_gen_creation_time(wp->creation_time),
+               "id", id);
        ce_waypt_pr(wp);
        write_xml_entity_end(ofd, "\t", "Mark");
 }
@@ -611,9 +651,21 @@ static void
 ce_marks_pr(void)
 {
        queue *elem, *tmp;
+
        QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
                ce_mark *mark = (ce_mark *) elem;
                ce_mark_pr(mark->wp);
+       }
+}
+
+/* Release all generated marks */
+static void
+ce_marks_flush_all(void)
+{
+       queue *elem, *tmp;
+
+       QUEUE_FOR_EACH(&ce_mark_head, elem, tmp) {
+               ce_mark *mark = (ce_mark *) elem;
                ce_free_mark(mark);
        }
 }
@@ -634,10 +686,14 @@ ce_write(void)
                                                   ce_gen_current_time());
        write_xml_entity(ofd, "\t", "Name", "Navigation Objects");
 
+       inRoute = 1;
        route_disp_all(ce_route_hdr, ce_route_tlr, ce_route_disp);
        ce_marks_pr();
+       inRoute = 0;
+       
        waypt_disp_all(ce_mark_pr);
-
+       ce_marks_flush_all();
+       
        write_xml_entity_end(ofd, "", "NavObjectCollection");
 }
 
index d5a7be89e0e48f84124d145cbf8849d21403b97e..b9385cbde7032a8890712b880c2060355ce86cd1 100644 (file)
                </Marks>
                <Name>Into The Bay</Name>
        </Route>
-       <Mark created="20041105T170909Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T170909Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>37.763290 N 122.282580 W</Position>
                <Name>SFBALBAY</Name>
        </Mark>
-       <Mark created="20041105T170910Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T170910Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>37.751613 N 122.339028 W</Position>
                <Name>SFBAY001</Name>
        </Mark>
-       <Mark created="20041105T170913Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T170913Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>37.817420 N 122.394305 W</Position>
                <Name>SFBAY002</Name>
        </Mark>
-       <Mark created="20041105T170916Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T170916Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>37.819339 N 122.478302 W</Position>
                <Name>SFGGBRDG</Name>
        </Mark>
-       <Mark created="20041105T170920Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T170920Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>37.773033 N 122.605838 W</Position>
                <Name>SFCHNL01</Name>
        </Mark>
-       <Mark created="20041105T170926Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T170926Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>37.518860 N 122.529914 W</Position>
                <Name>HMCOLREF</Name>
        </Mark>
-       <Mark created="20041105T170927Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T170927Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>37.482348 N 122.507704 W</Position>
                <Name>HMPILL01</Name>
        </Mark>
-       <Mark created="20041105T211624Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T211624Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
                <Position>37.475062 N 122.488531 W</Position>
                <Name>HMPILLPT</Name>
        </Mark>
-       <Mark created="20041105T170929Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T170929Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>37.476448 N 122.475800 W</Position>
                <Name>HMPILL02</Name>
        </Mark>
-       <Mark created="20041105T170930Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T170930Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>37.495102 N 122.483927 W</Position>
                <Name>HMPILL03</Name>
        </Mark>
-       <Mark created="20041105T211300Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T211300Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>37.229349 N 122.441589 W</Position>
                <Name>PESCDR01</Name>
        </Mark>
-       <Mark created="20041105T211324Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T211324Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>37.183397 N 122.411904 W</Position>
                <Name>PIGEON01</Name>
        </Mark>
-       <Mark created="20041105T211341Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T211341Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>37.090736 N 122.348775 W</Position>
                <Name>ANONUV01</Name>
        </Mark>
-       <Mark created="20041105T211409Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T211409Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>36.929502 N 122.113725 W</Position>
                <Name>SCRUZ01</Name>
        </Mark>
-       <Mark created="20041105T211416Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T211416Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>36.934235 N 122.022130 W</Position>
                <Name>SCRUZ02</Name>
        </Mark>
-       <Mark created="20041105T211420Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T211420Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>36.960666 N 122.024734 W</Position>
                <Name>SCRUZENT</Name>
        </Mark>
-       <Mark created="20041105T212422Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T212422Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>36.581344 N 121.995411 W</Position>
                <Name>CYPRSSPT</Name>
        </Mark>
-       <Mark created="20041105T212438Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T212438Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>36.301110 N 121.919097 W</Position>
                <Name>PTSUR</Name>
        </Mark>
-       <Mark created="20041105T212515Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T212515Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>36.238177 N 121.855209 W</Position>
                <Name>COOPERPT</Name>
        </Mark>
-       <Mark created="20041105T212526Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T212526Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>36.225175 N 121.801314 W</Position>
                <Name>PFEIFENT</Name>
        </Mark>
-       <Mark created="20041105T212531Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T212531Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>36.230449 N 121.797444 W</Position>
                <Name>PFEIFANC</Name>
        </Mark>
-       <Mark created="20041105T212826Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T212826Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>35.879801 N 121.498947 W</Position>
                <Name>SANMRT01</Name>
        </Mark>
-       <Mark created="20041105T212833Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T212833Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>35.652801 N 121.308485 W</Position>
                <Name>PDRSBLNC</Name>
        </Mark>
-       <Mark created="20041105T212850Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T212850Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
                <Position>35.623297 N 121.185920 W</Position>
                <Name>SNSMNENT</Name>
        </Mark>
-       <Mark created="20041105T212853Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T212853Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>35.640478 N 121.183772 W</Position>
                <Name>SNSMNANC</Name>
        </Mark>
-       <Mark created="20041105T213618Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T213618Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>35.572353 N 121.152797 W</Position>
                <Name>CAMBRIA</Name>
        </Mark>
-       <Mark created="20041105T213626Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T213626Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>35.449214 N 121.020825 W</Position>
                <Name>PTESTERO</Name>
        </Mark>
-       <Mark created="20041105T213635Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T213635Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>35.216602 N 120.928391 W</Position>
                <Name>PTBUCHON</Name>
        </Mark>
-       <Mark created="20041105T213642Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T213642Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>34.883361 N 120.684631 W</Position>
                <Name>PTSAL01</Name>
        </Mark>
-       <Mark created="20041105T213647Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T213647Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>34.884641 N 120.652026 W</Position>
                <Name>PTSALENT</Name>
        </Mark>
-       <Mark created="20041105T213704Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T213704Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>34.896555 N 120.649124 W</Position>
                <Name>PTSALANC</Name>
        </Mark>
-       <Mark created="20041105T213949Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T213949Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>34.758180 N 120.642516 W</Position>
                <Name>PURSMAPT</Name>
        </Mark>
-       <Mark created="20041105T213954Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T213954Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>34.572579 N 120.663636 W</Position>
                <Name>PTARGLLO</Name>
        </Mark>
-       <Mark created="20041105T214005Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T214005Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>34.113844 N 120.492630 W</Position>
                <Name>SANMGL01</Name>
        </Mark>
-       <Mark created="20041105T214044Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T214044Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>34.029483 N 120.471409 W</Position>
                <Name>SANMGL02</Name>
        </Mark>
-       <Mark created="20041105T214048Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T214048Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>34.019184 N 120.444197 W</Position>
                <Name>SANMGL03</Name>
        </Mark>
-       <Mark created="20041105T214057Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T214057Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>34.023478 N 120.438209 W</Position>
                <Name>ADCOVENT</Name>
        </Mark>
-       <Mark created="20041105T214059Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T214059Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>34.028615 N 120.439696 W</Position>
                <Name>ADCOVANC</Name>
        </Mark>
index fe1d2e3f909269b2b23453b797845a4b1efa38b7..86bab53b110762b213ed32470a2012190ed5be91 100644 (file)
@@ -7,60 +7,6 @@ xmlns="http://www.topografix.com/GPX/1/0"
 xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
 <time>1970-01-01T00:00:00Z</time>
 <bounds minlat="34.019184000" minlon="-122.605838000" maxlat="37.819339000" maxlon="-120.438209000"/>
-<wpt lat="37.763290000" lon="-122.282580000">
-<time>2004-11-05T17:09:09Z</time>
-  <name>SFBALBAY</name>
-  <cmt>SFBALBAY</cmt>
-  <desc>SFBALBAY</desc>
-</wpt>
-<wpt lat="37.751613000" lon="-122.339028000">
-<time>2004-11-05T17:09:10Z</time>
-  <name>SFBAY001</name>
-  <cmt>SFBAY001</cmt>
-  <desc>SFBAY001</desc>
-</wpt>
-<wpt lat="37.817420000" lon="-122.394305000">
-<time>2004-11-05T17:09:13Z</time>
-  <name>SFBAY002</name>
-  <cmt>SFBAY002</cmt>
-  <desc>SFBAY002</desc>
-</wpt>
-<wpt lat="37.819339000" lon="-122.478302000">
-<time>2004-11-05T17:09:16Z</time>
-  <name>SFGGBRDG</name>
-  <cmt>SFGGBRDG</cmt>
-  <desc>SFGGBRDG</desc>
-</wpt>
-<wpt lat="37.773033000" lon="-122.605838000">
-<time>2004-11-05T17:09:20Z</time>
-  <name>SFCHNL01</name>
-  <cmt>SFCHNL01</cmt>
-  <desc>SFCHNL01</desc>
-</wpt>
-<wpt lat="37.518860000" lon="-122.529914000">
-<time>2004-11-05T17:09:26Z</time>
-  <name>HMCOLREF</name>
-  <cmt>HMCOLREF</cmt>
-  <desc>HMCOLREF</desc>
-</wpt>
-<wpt lat="37.482348000" lon="-122.507704000">
-<time>2004-11-05T17:09:27Z</time>
-  <name>HMPILL01</name>
-  <cmt>HMPILL01</cmt>
-  <desc>HMPILL01</desc>
-</wpt>
-<wpt lat="37.476448000" lon="-122.475800000">
-<time>2004-11-05T17:09:29Z</time>
-  <name>HMPILL02</name>
-  <cmt>HMPILL02</cmt>
-  <desc>HMPILL02</desc>
-</wpt>
-<wpt lat="37.495102000" lon="-122.483927000">
-<time>2004-11-05T17:09:30Z</time>
-  <name>HMPILL03</name>
-  <cmt>HMPILL03</cmt>
-  <desc>HMPILL03</desc>
-</wpt>
 <wpt lat="37.229349000" lon="-122.441589000">
 <time>2004-11-05T21:13:00Z</time>
   <name>PESCDR01</name>
@@ -97,12 +43,6 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <cmt>SCRUZENT</cmt>
   <desc>SCRUZENT</desc>
 </wpt>
-<wpt lat="37.475062000" lon="-122.488531000">
-<time>2004-11-05T21:16:24Z</time>
-  <name>HMPILLPT</name>
-  <cmt>HMPILLPT</cmt>
-  <desc>HMPILLPT</desc>
-</wpt>
 <wpt lat="36.581344000" lon="-121.995411000">
 <time>2004-11-05T21:24:22Z</time>
   <name>CYPRSSPT</name>
@@ -235,4 +175,47 @@ xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/
   <cmt>ADCOVANC</cmt>
   <desc>ADCOVANC</desc>
 </wpt>
+<rte>
+  <name>Into The Bay</name>
+  <rtept lat="37.763290000" lon="-122.282580000">
+<time>2004-11-05T17:09:09Z</time>
+    <name>SFBALBAY</name>
+  </rtept>
+  <rtept lat="37.751613000" lon="-122.339028000">
+<time>2004-11-05T17:09:10Z</time>
+    <name>SFBAY001</name>
+  </rtept>
+  <rtept lat="37.817420000" lon="-122.394305000">
+<time>2004-11-05T17:09:13Z</time>
+    <name>SFBAY002</name>
+  </rtept>
+  <rtept lat="37.819339000" lon="-122.478302000">
+<time>2004-11-05T17:09:16Z</time>
+    <name>SFGGBRDG</name>
+  </rtept>
+  <rtept lat="37.773033000" lon="-122.605838000">
+<time>2004-11-05T17:09:20Z</time>
+    <name>SFCHNL01</name>
+  </rtept>
+  <rtept lat="37.518860000" lon="-122.529914000">
+<time>2004-11-05T17:09:26Z</time>
+    <name>HMCOLREF</name>
+  </rtept>
+  <rtept lat="37.482348000" lon="-122.507704000">
+<time>2004-11-05T17:09:27Z</time>
+    <name>HMPILL01</name>
+  </rtept>
+  <rtept lat="37.475062000" lon="-122.488531000">
+<time>2004-11-05T21:16:24Z</time>
+    <name>HMPILLPT</name>
+  </rtept>
+  <rtept lat="37.476448000" lon="-122.475800000">
+<time>2004-11-05T17:09:29Z</time>
+    <name>HMPILL02</name>
+  </rtept>
+  <rtept lat="37.495102000" lon="-122.483927000">
+<time>2004-11-05T17:09:30Z</time>
+    <name>HMPILL03</name>
+  </rtept>
+</rte>
 </gpx>
index 20faa6aaa345764a8731c47c1945f1c9c201f647..b9385cbde7032a8890712b880c2060355ce86cd1 100644 (file)
 <?xml version="1.0"?>
 <NavObjectCollection created="19700101T000000Z">
        <Name>Navigation Objects</Name>
-       <Mark created="20041105T170909Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Route created="19700101T000000Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
+               <Marks>
+                       {10111213-1415-1617-1819-1a1b1c1d1e1f}
+                       {20212223-2425-2627-2829-2a2b2c2d2e2f}
+                       {30313233-3435-3637-3839-3a3b3c3d3e3f}
+                       {40414243-4445-4647-4849-4a4b4c4d4e4f}
+                       {50515253-5455-5657-5859-5a5b5c5d5e5f}
+                       {60616263-6465-6667-6869-6a6b6c6d6e6f}
+                       {70717273-7475-7677-7879-7a7b7c7d7e7f}
+                       {80818283-8485-8687-8889-8a8b8c8d8e8f}
+                       {90919293-9495-9697-9899-9a9b9c9d9e9f}
+                       {a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}
+               </Marks>
+               <Name>Into The Bay</Name>
+       </Route>
+       <Mark created="20041105T170909Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>37.763290 N 122.282580 W</Position>
                <Name>SFBALBAY</Name>
        </Mark>
-       <Mark created="20041105T170910Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T170910Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>37.751613 N 122.339028 W</Position>
                <Name>SFBAY001</Name>
        </Mark>
-       <Mark created="20041105T170913Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T170913Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>37.817420 N 122.394305 W</Position>
                <Name>SFBAY002</Name>
        </Mark>
-       <Mark created="20041105T170916Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T170916Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>37.819339 N 122.478302 W</Position>
                <Name>SFGGBRDG</Name>
        </Mark>
-       <Mark created="20041105T170920Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T170920Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>37.773033 N 122.605838 W</Position>
                <Name>SFCHNL01</Name>
        </Mark>
-       <Mark created="20041105T170926Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T170926Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>37.518860 N 122.529914 W</Position>
                <Name>HMCOLREF</Name>
        </Mark>
-       <Mark created="20041105T170927Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T170927Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>37.482348 N 122.507704 W</Position>
                <Name>HMPILL01</Name>
        </Mark>
-       <Mark created="20041105T170929Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T211624Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
+               <Position>37.475062 N 122.488531 W</Position>
+               <Name>HMPILLPT</Name>
+       </Mark>
+       <Mark created="20041105T170929Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>37.476448 N 122.475800 W</Position>
                <Name>HMPILL02</Name>
        </Mark>
-       <Mark created="20041105T170930Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T170930Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>37.495102 N 122.483927 W</Position>
                <Name>HMPILL03</Name>
        </Mark>
-       <Mark created="20041105T211300Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T211300Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>37.229349 N 122.441589 W</Position>
                <Name>PESCDR01</Name>
        </Mark>
-       <Mark created="20041105T211324Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T211324Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>37.183397 N 122.411904 W</Position>
                <Name>PIGEON01</Name>
        </Mark>
-       <Mark created="20041105T211341Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T211341Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>37.090736 N 122.348775 W</Position>
                <Name>ANONUV01</Name>
        </Mark>
-       <Mark created="20041105T211409Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T211409Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>36.929502 N 122.113725 W</Position>
                <Name>SCRUZ01</Name>
        </Mark>
-       <Mark created="20041105T211416Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T211416Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>36.934235 N 122.022130 W</Position>
                <Name>SCRUZ02</Name>
        </Mark>
-       <Mark created="20041105T211420Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T211420Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>36.960666 N 122.024734 W</Position>
                <Name>SCRUZENT</Name>
        </Mark>
-       <Mark created="20041105T211624Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
-               <Position>37.475062 N 122.488531 W</Position>
-               <Name>HMPILLPT</Name>
-       </Mark>
-       <Mark created="20041105T212422Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T212422Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>36.581344 N 121.995411 W</Position>
                <Name>CYPRSSPT</Name>
        </Mark>
-       <Mark created="20041105T212438Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T212438Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>36.301110 N 121.919097 W</Position>
                <Name>PTSUR</Name>
        </Mark>
-       <Mark created="20041105T212515Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T212515Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>36.238177 N 121.855209 W</Position>
                <Name>COOPERPT</Name>
        </Mark>
-       <Mark created="20041105T212526Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T212526Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>36.225175 N 121.801314 W</Position>
                <Name>PFEIFENT</Name>
        </Mark>
-       <Mark created="20041105T212531Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T212531Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>36.230449 N 121.797444 W</Position>
                <Name>PFEIFANC</Name>
        </Mark>
-       <Mark created="20041105T212826Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T212826Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>35.879801 N 121.498947 W</Position>
                <Name>SANMRT01</Name>
        </Mark>
-       <Mark created="20041105T212833Z" id="60616263-6465-6667-6869-6a6b6c6d6e6f">
+       <Mark created="20041105T212833Z" id="{70717273-7475-7677-7879-7a7b7c7d7e7f}">
                <Position>35.652801 N 121.308485 W</Position>
                <Name>PDRSBLNC</Name>
        </Mark>
-       <Mark created="20041105T212850Z" id="70717273-7475-7677-7879-7a7b7c7d7e7f">
+       <Mark created="20041105T212850Z" id="{80818283-8485-8687-8889-8a8b8c8d8e8f}">
                <Position>35.623297 N 121.185920 W</Position>
                <Name>SNSMNENT</Name>
        </Mark>
-       <Mark created="20041105T212853Z" id="80818283-8485-8687-8889-8a8b8c8d8e8f">
+       <Mark created="20041105T212853Z" id="{90919293-9495-9697-9899-9a9b9c9d9e9f}">
                <Position>35.640478 N 121.183772 W</Position>
                <Name>SNSMNANC</Name>
        </Mark>
-       <Mark created="20041105T213618Z" id="90919293-9495-9697-9899-9a9b9c9d9e9f">
+       <Mark created="20041105T213618Z" id="{a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf}">
                <Position>35.572353 N 121.152797 W</Position>
                <Name>CAMBRIA</Name>
        </Mark>
-       <Mark created="20041105T213626Z" id="a0a1a2a3-a4a5-a6a7-a8a9-aaabacadaeaf">
+       <Mark created="20041105T213626Z" id="{b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf}">
                <Position>35.449214 N 121.020825 W</Position>
                <Name>PTESTERO</Name>
        </Mark>
-       <Mark created="20041105T213635Z" id="b0b1b2b3-b4b5-b6b7-b8b9-babbbcbdbebf">
+       <Mark created="20041105T213635Z" id="{c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf}">
                <Position>35.216602 N 120.928391 W</Position>
                <Name>PTBUCHON</Name>
        </Mark>
-       <Mark created="20041105T213642Z" id="c0c1c2c3-c4c5-c6c7-c8c9-cacbcccdcecf">
+       <Mark created="20041105T213642Z" id="{d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf}">
                <Position>34.883361 N 120.684631 W</Position>
                <Name>PTSAL01</Name>
        </Mark>
-       <Mark created="20041105T213647Z" id="d0d1d2d3-d4d5-d6d7-d8d9-dadbdcdddedf">
+       <Mark created="20041105T213647Z" id="{e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef}">
                <Position>34.884641 N 120.652026 W</Position>
                <Name>PTSALENT</Name>
        </Mark>
-       <Mark created="20041105T213704Z" id="e0e1e2e3-e4e5-e6e7-e8e9-eaebecedeeef">
+       <Mark created="20041105T213704Z" id="{f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff}">
                <Position>34.896555 N 120.649124 W</Position>
                <Name>PTSALANC</Name>
        </Mark>
-       <Mark created="20041105T213949Z" id="f0f1f2f3-f4f5-f6f7-f8f9-fafbfcfdfeff">
+       <Mark created="20041105T213949Z" id="{00010203-0405-0607-0809-0a0b0c0d0e0f}">
                <Position>34.758180 N 120.642516 W</Position>
                <Name>PURSMAPT</Name>
        </Mark>
-       <Mark created="20041105T213954Z" id="00010203-0405-0607-0809-0a0b0c0d0e0f">
+       <Mark created="20041105T213954Z" id="{10111213-1415-1617-1819-1a1b1c1d1e1f}">
                <Position>34.572579 N 120.663636 W</Position>
                <Name>PTARGLLO</Name>
        </Mark>
-       <Mark created="20041105T214005Z" id="10111213-1415-1617-1819-1a1b1c1d1e1f">
+       <Mark created="20041105T214005Z" id="{20212223-2425-2627-2829-2a2b2c2d2e2f}">
                <Position>34.113844 N 120.492630 W</Position>
                <Name>SANMGL01</Name>
        </Mark>
-       <Mark created="20041105T214044Z" id="20212223-2425-2627-2829-2a2b2c2d2e2f">
+       <Mark created="20041105T214044Z" id="{30313233-3435-3637-3839-3a3b3c3d3e3f}">
                <Position>34.029483 N 120.471409 W</Position>
                <Name>SANMGL02</Name>
        </Mark>
-       <Mark created="20041105T214048Z" id="30313233-3435-3637-3839-3a3b3c3d3e3f">
+       <Mark created="20041105T214048Z" id="{40414243-4445-4647-4849-4a4b4c4d4e4f}">
                <Position>34.019184 N 120.444197 W</Position>
                <Name>SANMGL03</Name>
        </Mark>
-       <Mark created="20041105T214057Z" id="40414243-4445-4647-4849-4a4b4c4d4e4f">
+       <Mark created="20041105T214057Z" id="{50515253-5455-5657-5859-5a5b5c5d5e5f}">
                <Position>34.023478 N 120.438209 W</Position>
                <Name>ADCOVENT</Name>
        </Mark>
-       <Mark created="20041105T214059Z" id="50515253-5455-5657-5859-5a5b5c5d5e5f">
+       <Mark created="20041105T214059Z" id="{60616263-6465-6667-6869-6a6b6c6d6e6f}">
                <Position>34.028615 N 120.439696 W</Position>
                <Name>ADCOVANC</Name>
        </Mark>